package net.xdclass.service;

import net.xdclass.controller.req.FileChunkInitTaskReq;
import net.xdclass.controller.req.FileChunkMergeReq;
import net.xdclass.dto.FileChunkDTO;

/**
 * @author 姜阿木
 * @date 2025/7/11 15:51
 */
public interface FileChunkService {

    /**
     * 初始化分片上传任务
     * @param req
     * @return
     */
    FileChunkDTO initFileChunkTask(FileChunkInitTaskReq req);

    /**
     * 获取临时上传地址
     * @param accountId
     * @param identifier
     * @param partNumber
     * @return
     */
    String genPreSignUploadUrl(Long accountId, String identifier, int partNumber);

    /**
     * 分片合并
     * @param req
     */
    void mergeFileChunk(FileChunkMergeReq req);

    /**
     * 分片上传进度查询
     * @param accountId
     * @param identifier
     * @return
     */
    FileChunkDTO listFileChunk(Long accountId, String identifier);
}
